package com.kandinfo.base.admin.service;

import java.util.List;

import com.kandinfo.base.admin.domain.WorkGroupData;
import com.kandinfo.base.admin.dto.WorkGroupDataDto;
import com.kandinfo.base.admin.repository.WorkGroupDataRepository;
import com.kandinfo.base.common.service.Service;


/**
 * 数据权限
 * @author wenchongyang
 *
 */
public interface WorkGroupDataService extends Service<WorkGroupData, Long, WorkGroupDataRepository> {

    List<WorkGroupDataDto> findByGroupId(Long groupId, Integer type);

    List<WorkGroupData> getByQuestionBankId(Long questionBankId);
    
    /**
     * 
     * Description: 根据关联id查询用户组关联信息
     *
     * @param refId 
     * @param type 数据权限类型
     * @return
     */
    List<WorkGroupData> findByRefId(Long refId, Integer type);
    
    /**
     * 
    * Description: 根据用户ID查询该用户拥有的题源或教材权限
    *
    * @param userId
    * @param type
    * @return
     */
    List<WorkGroupData> findPermissionByUserId(Long userId , Integer type);
    
    /**
     * 
     * Description: 根据分组id批量保存
     *
     * @param refIds
     * @param groupId
     * @param type
     * @return
     */
    boolean saveWGDatesByGroupId(String refIds, Long groupId, Integer type);
    
    /**
     * 
     * Description: 根据用户组集合保存题源权限数据
     *
     * @param groupIds workgroupid 集合
     * @param qsId 题源id
     * @return
     */
    boolean saveWGDates(String groupIds, Long qsId);
    
    /**
     * 
     * Description: 更新题源id下的所有的数据 
     *
     * @param groupIds workgroupid 集合
     * @param qsId 题源id
     * @return
     */
    boolean editWGDates(String groupIds, Long qsId);
}
